.\"to render: groff -Tascii -man doc/lein.1 > lein.man"
.TH LEININGEN 1 "2017 August 10"
.SH NAME
lein \- Automate Clojure projects

.SH SYNOPSIS

.B lein
[\fB\-o\fR] [\fB\-U\fR] [\fITASK\fR [\fIARGS\fR]]
.br
.B lein
[\fB\-h\fR|\fB\-\-help\fR]
.br
.B lein
[\fB\-v\fR|\fB\-\-version\fR]

.SH DESCRIPTION

Leiningen is for automating Clojure projects without setting your hair
on fire.

Working on Clojure projects with tools designed for Java can be an
exercise in frustration. With Leiningen, you just write Clojure.

.SH TASKS

.B lein help
will show the complete list of tasks, while
.B lein help TASK
shows usage for a specific one.

.B lein help tutorial
has a detailed walk-through of the various tasks, but the most
commonly-used are:

.RS
.TP
.B lein new NAME
generate a new project skeleton
.TP
.B lein test [TESTS]
run the tests in the TESTS namespaces, or all tests
.TP
.B lein repl
launch an interactive REPL session in a networked REPL server
.TP
.B lein uberjar
package up the project and its dependencies as a standalone .jar file
.TP
.B lein install
install a project into your local repository
.TP
.B lein deploy [REPOSITORY]
deploy a library to a remote repository
.RE

.TP
Other tasks available include:

.RS
.TP
.B lein change
Rewrite project.clj by applying a function.

.TP
.B lein check
Check syntax and warn on reflection.

.TP
.B lein classpath
Print the classpath of the current project.

.TP
.B lein clean
Remove all files from project's target-path.

.TP
.B lein compile
Compile Clojure source into .class files.

.TP
.B lein deps
Download all dependencies.

.TP
.B lein do [TASK], ...
Higher-order task to perform other tasks in succession.

.TP
.B lein jar
Package up all the project's files into a jar file.

.TP
.B lein javac
Compile Java source files.

.TP
.B lein pom
Write a pom.xml file to disk for Maven interoperability.

.TP
.B lein release
Perform :release-tasks.

.TP
.B lein retest
Run only the test namespaces which failed last time around.

.TP
.B lein run
Run a -main function with optional command-line arguments.

.TP
.B lein search
Search remote maven repositories for matching jars.

.TP
.B lein show-profiles
List all available profiles or display one if given an argument.

.TP
.B lein trampoline [TASK]
Run a task without nesting the project's JVM inside Leiningen's.

.TP
.B lein update-in
Perform arbitrary transformations on your project map.

.TP
.B lein vcs
Interact with the version control system.

.TP
.B lein version
Print version for Leiningen and the current JVM.

.TP
.B lein with-profile [PROFILE] [TASK]
Apply the given task with the profile(s) specified.
.RE

.SH OPTIONS

.TP
.BI \-o
Run a task offline.

.TP
.BI \-U
Run a task after forcing update of snapshots.

.TP
.BR \-h ", " \-\-help
Print this help or help for a specific task.

.TP
.BR \-v ", " \-\-version
Print Leiningen's version.

.SH CONFIGURATION

Leiningen reads its configuration from the
.B project.clj
file in your project root. Either use
.B lein new
to create a fresh project from which to work, or see the exhaustive
list of configuration options with
\fBlein help sample\fR.

You can customize your project map further with profiles; see
\fBlein help profiles\fR.

.SH BUGS

Check https://github.com/technomancy/leiningen/issues to see if your
problem is a known issue. If not, please open a new issue on that site
or join the mailing list at
https://www.freelists.org/list/leiningen. Please include the output of
.B lein version
as well as your
.B project.clj
file and as much of the relevant code from your project as possible.

.SH COPYING

Copyright
.if t \(co
.if n (C)
2009-2017 Phil Hagelberg and contributors.

Distributed under the Eclipse Public License, the same as Clojure
uses. See the file /usr/share/doc/leiningen/copyright.

.SH AUTHOR
This manpage is written by Phil Hagelberg <technomancy@gmail.com>
